home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2005 October / PCWOCT05.iso / Software / FromTheMag / XAMPP 1.4.14 / xampp-win32-1.4.14-installer.exe / xampp / phpMyAdmin / libraries / db_table_exists.lib.php < prev    next >
PHP Script  |  2004-10-19  |  2KB  |  49 lines

  1. <?php
  2. /* $Id: db_table_exists.lib.php,v 2.8 2004/10/19 19:51:54 nijel Exp $ */
  3. // vim: expandtab sw=4 ts=4 sts=4:
  4.  
  5. /**
  6.  * Ensure the database and the table exist (else move to the "parent" script)
  7.  * and display headers
  8.  */
  9. if (!isset($is_db) || !$is_db) {
  10.     // Not a valid db name -> back to the welcome page
  11.     if (!empty($db)) {
  12.         $is_db = @PMA_DBI_select_db($db);
  13.     }
  14.     if (empty($db) || !$is_db) {
  15.         if (!isset($is_transformation_wrapper)) {
  16.             PMA_sendHeaderLocation($cfg['PmaAbsoluteUri'] . 'main.php?' . PMA_generate_common_url('', '', '&') . (isset($message) ? '&message=' . urlencode($message) : '') . '&reload=1');
  17.         }
  18.         exit;
  19.     }
  20. } // end if (ensures db exists)
  21. if (!isset($is_table) || !$is_table) {
  22.     // Not a valid table name -> back to the db_details.php
  23.     if (!empty($table)) {
  24.         $is_table = PMA_DBI_try_query('SHOW TABLES LIKE \'' . PMA_sqlAddslashes($table, TRUE) . '\';', NULL, PMA_DBI_QUERY_STORE);
  25.     }
  26.     if (empty($table)
  27.         || !($is_table && @PMA_DBI_num_rows($is_table))) {
  28.         $redirect = TRUE;
  29.         if (!isset($is_transformation_wrapper)) {
  30.             $redirect = TRUE;
  31.             if (!empty($table)) {
  32.                 PMA_DBI_free_result($is_table);
  33.                 // SHOW TABLES doesn't show temporary tables, so try select (as it can happen just in case temporary table, it should be fast):
  34.                 $is_table2 = PMA_DBI_try_query('SELECT COUNT(*) FROM `' . PMA_sqlAddslashes($table, TRUE) . '`;', NULL, PMA_DBI_QUERY_STORE);
  35.                 $redirect = !($is_table2 && @PMA_DBI_num_rows($is_table2));
  36.                 PMA_DBI_free_result($is_table2);
  37.             }
  38.  
  39.             if ($redirect) {
  40.                 PMA_sendHeaderLocation($cfg['PmaAbsoluteUri'] . 'db_details.php?' . PMA_generate_common_url($db, '', '&') . (isset($message) ? '&message=' . urlencode($message) : '') . '&reload=1');
  41.             }
  42.         }
  43.         if ($redirect) exit;
  44.     } else if (isset($is_table)) {
  45.         PMA_DBI_free_result($is_table);
  46.     }
  47. } // end if (ensures table exists)
  48. ?>
  49.